This invention relates generally to computer-assisted design automation and more particularly to a computer system and method for performing design automation in a distributed computing environment.
The field of computer-aided design ("CAD") automation has become a valuable, indeed indispensable, part of modem engineering practice. In the high technology industry, electronic design automation ("EDA") and manufacturing computer-aided design ("MCAD") tools are employed during nearly every stage of product design and development. In particular, EDA tools are applied in design levels which include electronic system, circuit board, integrated circuit ("IC") and discrete component levels, and are used in the design of digital, analog, mixed signal and other types of electronic systems.
As an example, EDA systems, also referred to as design or "point" tools, are used extensively during the physical design process. These tools have increased the level of integration, reduced turnaround time and enhanced chip performance. Various point tools accomplish different objectives and different point tools are often required to complete even a single design stage. Point tools are used for numerous tasks, including determining an optimal arrangement of devices in a planar or three-dimensional space, finding efficient interconnection or "routing" schemes and minimizing the amount of space or chip area used.
During the course of a single physical design effort, each point tool will be used repeatedly until a final design is achieved. However, different tools are often supplied by different vendors which introduces several problems. First, each point tool may employ proprietary data structures or protocols unique to that vendor. Second, a particular point tool might be closely tied to the vagaries of the operating system or hardware platform upon which it operates. Third, the suite of point tools used in a single design effort might be distributed over a network of heterogenous computer systems, thereby introducing yet another layer of potential incompatibilities. Each of these problems will now be expanded.
First, the different data structures and protocols for storing and exchanging design information typically used by point tools provided by individual software vendors are often proprietary. Moreover, such point tools generally work independently and lack multi-threading capabilities for dynamically communicating with another point tool while performing a given task. Some point tools, however, share a limited ability to work cooperatively in the context of a particular proprietary modeling environment. One example of such an environment is the Cadence Connection Program, a third party computer-aided design standard developed and distributed by Cadence Design Systems, Inc., San Jose, Calif., which enables data interchange and program cooperation between commercial point tool software from specifically licensed vendors. This approach, while providing a modicum of integration and compatibility, is cumbersome, expensive and inflexible as each point tool must be customized to work in conjunction with the Cadence Connection Program. Moreover, no support for multi-threading or dynamic cooperation is provided.
Second, point tools often operate on different hardware platforms running different operating systems. Each point tool must be rewritten or ported to operate with each operating system and hardware platform on which it is to be used. While it is possible to provide interoperability between these tools in an operating system or hardware platform independent manner, important design information can be lost, for instance, due to semantic flattening, in an attempt to bridge inconsistent data structures and protocols. As a practical matter, most point tools barely interoperate, if at all, because of these problems. This can exacerbate the design process as each point tool must begin and complete its assigned task before the next tool can start. Moreover, there is essentially no "feedback" between the point tools to communicate, for instance, a failure to achieve an optimal end result. If the work in process does not converge to a solution at all, adjustments must be made and the entire process, involving each of the point tools running under their specific operating system and hardware platform, started over.
Third, a closely related concern occurs when point tools are distributed over a network of heterogeneous computers. The transfer of design information in a networked environment is limited by the services and protocols available to the underlying operating system. These include, for example, a data interchange protocol such as the File Transfer Protocol ("FTP"). The non-availability of such network services severely hampers the exchange of information between independent hardware platforms and thereby hinders the design process.
Therefore, there is a need for a computer system and method for performing design automation, including EDA, with complete integration of data structures and protocols. Such a system and method would preferably operate on a variety of hardware platforms running different operating systems. In addition, these hardware platforms could be configured as a distributed environment of heterogenous computers interconnected over a network.